package com.qf.conf;

import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.beans.factory.support.RootBeanDefinition;
import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;
import org.springframework.core.type.AnnotationMetadata;

public class MyImportBeanDefinitionRegistrar implements ImportBeanDefinitionRegistrar {
    /**
     * BeanDefinitionRegistry registry spring容器中的bean的注册器对象，所有spring容器中的对象，实现都是向这个注册器中注册
     * 所以我们可以通过这种方式，向spring容器中添加一些额外的我们想添加的对象
     *
     * @param importingClassMetadata
     * @param registry
     */
    @Override
    public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {

        BeanDefinition bd = new RootBeanDefinition();
        bd.setBeanClassName("com.qf.pojo.User");

        //向spring容器中动态注入一个User类型的对象
        registry.registerBeanDefinition("xx",bd);
    }
}
